Data processing systems such as integrated circuit microcontrollers generally include a central processing unit (CPU) and a number of peripheral circuit modules. The circuit modules may include circuits for performing a particular function, such as for example, analog-to-digital converters, serial and peripheral interface modules, time processing units, memory modules, etc. The memory modules may include any type of memory, such as for example, static random access memory (SRAM), dynamic random access memory (DRAM) flash memory or electrically erasable programmable read only memory (EEPROM).
Generally, as part of the integrated circuit manufacturing process, each of these modules are tested one at a time to assure they function within required specifications. As the size and complexity of these multi-module data processing systems increases, the time required to test the CPU and the circuit modules increases. The testing portion of a complex data processing system can be a major time and cost factor in the integrated circuit manufacturing process. Therefore, a way to reduce the time required for testing a complex multi-module data processing system is needed.